Coordination and Concurrency in Multi-engine Prolog
نویسنده
چکیده
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism. In this context, native multi-threading is made available to the application programmer as a set of high-level primitives with a declarative flavor while cooperative constructs provide efficient and predictable coordination mechanisms. As illustrations of our techniques, a parallel fold operation as well as cooperative implementations of Linda blackboards and publish/subscribe are described.
منابع مشابه
Applying Coupled Resolution Engines to Knowledge Bases
As part of Alvey project IKBS 90, a software architecture has been developed that couples a concurrent logic programming or CLP engine with a multi-threaded Prolog engine. Concurrency among mutually invoking Prolog and CLP computations is sustained partly through and-parallel execution of CLP computations on the CLP engine, and partly by executing multiple Prolog processes and a CLP engine unde...
متن کاملAutonomous Agents Coordination: Action Description Languages Meet CLP(FD) and Linda
The paper presents a knowledge representation formalism for multi-agent systems, where different autonomous agents reason and act in a shared environment. Agents are autonomously pursuing individual goals, but are capable of interacting through a shared knowledge repository and collaborative actions. In their interaction through shared portions of the world, agents deal with problems of synchro...
متن کاملTowards multi-threaded local tabling using a common table space
Multi-threading is currently supported by several well-known Prolog systems providing a highly portable solution for applications that can benefit from concurrency. When multithreading is combined with tabling, we can exploit the power of higher procedural control and declarative semantics. However, despite the availability of both threads and tabling in some Prolog systems, the implementation ...
متن کاملAutonomous agents coordination: Action languages meet CLP() and Linda
The paper presents a knowledge representation formalism, in the form of a high-level Action Description Language (ADL) for multi-agent systems, where autonomous agents reason and act in a shared environment. Agents are autonomously pursuing individual goals, but are capable of interacting through a shared knowledge repository. In their interactions through shared portions of the world, the agen...
متن کاملKelpie: a Concurrent Logic Programming System for Knowledge Based Applications
A software architecture that interfaces a concurrent logic programming system to a Prolog database machine is described. The concurrent logic programming system connects a guarded clause inference engine with a definite clause inference engine to support concurrent execution of mutually invoking guarded and definite clause programs. An interface to a Prolog database machine allows the concurren...
متن کامل